13 research outputs found
SPLTea 2015: Second International Workshop on Software Product Line Teaching
International audienceEducation has a key role to play for disseminating the constantly growing body of Software Product Line (SPL) knowledge. Teaching SPLs is challenging; it is unclear, for example , how SPLs can be taught and what is the material available. This workshop aims to explore and explain the current status and ongoing work on teaching SPLs at universities, colleges, and in industry (e.g., by consultants). This second edition will continue the effort made at SPLTea'14. In particular we seek to design and populate an open repository of resources dedicated to SPL teaching
Aplicando programaciĂłn lineal entera a la bĂşsqueda de conjuntos de productos de prueba priorizados para lĂneas de productos software
Las lĂneas de productos software son familias de productos que están Ăntimamente relacionados entre sĂ, normalmente formados por combinaciones de un conjunto de caracterĂsticas software. Generalmente no es factible testar todos los productos de la familia, ya que el nĂşmero de productos es muy elevado debido a la explosiĂłn combinatoria de caracterĂsticas. Por este motivo, se han propuesto criterios de cobertura que pretenden probar al menos todas las interacciones entre caracterĂsticas sin necesidad de probar todos los productos, por ejemplo todos los pares de caracterĂsticas (emph{pairwise coverage}). Además, es deseable testar primero los productos compuestos por un conjunto de caracterĂsticas prioritarias. Este problema es conocido como emph{Prioritized Pairwise Test Data Generation}. En este trabajo proponemos una tĂ©cnica basada en programaciĂłn lineal entera para generar este conjunto de pruebas priorizado. Nuestro estudio revela que la propuesta basada en programaciĂłn lineal entera consigue mejores resultados estadĂsticamente tanto en calidad como en tiempo de computaciĂłn con respecto a las tĂ©cnicas existentes para este problema.Universidad de Málaga. Campus de Excelencia Internacional AndalucĂa Tech. Ministerio de EconomĂa y Competitividad y fondos FEDER (proyecto TIN2014-57341-R). Beca BES-2012-055967
Conformance Checking with Constraint Logic Programming: The Case of Feature Models
Developing high quality systems depends on developing high quality models. An important facet of model quality is their consistency with respect to their meta-model. We call the verification of this quality the conformance checking process. We are interested in the conformance checking of Product Line Models (PLMs). The problem in the context of product lines is that product models are not created by instantiating a meta-model: they are derived from PLMs. Therefore it is usually at the level of PLMs that conformance checking is applied. On the semantic level, a PLM is defined as the collection of all the product models that can be derived from it. Therefore checking the conformance of the PLM is equivalent to checking the conformance of all the product models. However, we would like to avoid this naĂŻve approach because it is not scalable due to the high number of models. In fact, it is even sometimes infeasible to calculate the number of product models of a PLM. Despite the importance of PLM conformance checking, very few research works have been published and tools do not adequately support it. In this paper, we present an approach that employs Constraint Logic Programming as a technology on which to build a PLM conformance checking solution. The paper demonstrates the approach with feature models, the de facto standard for modeling software product lines. Based on an extensive literature review and an empirical study, we identified a set of 9 conformance checking rules and implemented them on the GNU Prolog constraints solver. We evaluated our approach by applying our rules to 50 feature models of sizes up to 10000 features. The evaluation showed that our approach is effective and scalable to industry size models
Recommended from our members
Understanding feature modularity
textFeatures are increments in program functionality. Feature abstraction, the process of
abstracting programs into their constituent features, is a relatively common yet informal
practice in software design. It is common because it simplifies program understanding. It
is also important for software product lines whose essence is the systematic and efficient
creation of software products from a shared set of assets or features, where each product
exhibits common functionality with other products but also has unique functionalities.
Thus, it seems natural to modularize feature abstractions and use such modules as
building blocks of programs and product lines. Unfortunately, conventional modularization
approaches such as methods, classes and packages are not geared for supporting feature
modules. They present two recurrent problems. First, a typical feature implementation
is spread over several conventional modules. Second, features are usually more than
source code artifacts as they can modularize many different program representations
(makefiles, documentation, performance models).
An undesirable consequence is that developers must lower their abstractions from
features to those provided by the underlying implementation languages, a process that is
far from simple let alone amenable to significant automation. The conceptual gap created
between feature abstractions and their modularization hinders program understanding and
product line development. The root of the problem is the fact that feature modularity is not
well understood and thus not well supported in conventional programming languages,
modularization mechanisms, and design techniques.
In this dissertation, we explore language and modularity support for features
founded on an algebraic model geared for program synthesis. Our model integrates ideas
from collaboration-based designs, mixin layers, aspect oriented programming, multidimensional
separation of concerns, and generative programming. We assess our model
with an implementation of a non-trivial product line case study, and evaluate feature support
in emerging modularization technologies.Computer Science
A Survey on Teaching of Software Product Lines
International audienceWith around two decades of existence, the community of Software Product Line (SPL) researchers and practitioners is thriving as can be attested by the extensive research output and the numerous successful industrial projects. Education has a key role to support the next generation of engineers to build highly complex SPLs. Yet, it is unclear how SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, or what is the material available. In this paper, we carry out a survey with over 30 respondents with the purpose of capturing a snapshot of the state of teaching in our community. We report and discuss quantitative as well as qualitative results of the survey. We build upon them and sketch six concrete actions to continue improving the state of practice of SPL teaching
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
International audienceSoftware Product Line (SPL) engineering has emerged to provide the means to efficiently model, produce, and maintain multiple similar software variants, exploiting their common properties, and managing their variabilities (differences). With over two decades of existence, the community of SPL researchers and practitioners is thriving as can be attested by the extensive research output and the numerous successful industrial projects. Education has a key role to support the next generation of practitioners to build highly complex, variability-intensive systems. Yet, it is unclear how the concepts of variability and SPLs are taught, what are the possible missing gaps and difficulties faced, what are the benefits, or what is the material available. Also, it remains unclear whether scholars teach what is actually needed by industry. In this article we report on three initiatives we have conducted with scholars, educators, industry practitioners, and students to further understand the connection between SPLs and education, i.e., an online survey on teaching SPLs we performed with 35 scholars, another survey on learning SPLs we conducted with 25 students, as well as two workshops held at the International Software Product Line Conference in 2014 and 2015 with both researchers and industry practitioners participating. We build upon the two surveys and the workshops to derive recommendations for educators to continue improving the state of practice of teaching SPLs, aimed at both individual educators as well as the wider community
Fifth International Workshop on Reverse Variability Engineering (REVE 2017), associated with SPLC
International audienc
Fourth International Workshop on Reverse Variability Engineering (REVE 2016), associated with SPLC
International audienc
Using Software Product Lines to Create Blockchain Products: Application to Supply Chain Traceability
International audienceIn recent years, blockchain has been growing rapidly from a niche technology to a promising solution for many sectors, due to its unique properties that empower the design of innovative applications. Nevertheless, the development of blockchain applications is still a challenge. Due to the technological novelty, only a few developers are familiar with blockchain technologies and smart contracts. Others might face a steep learning curve or difficulties to reuse existing code to build blockchain applications. This study proposes a novel approach to tackle these issues, through software product line engineering. To support the approach, a web platform to configure and generate a blockchain application for on-chain traceability is introduced. First, a feature model has been designed to model core features of the chosen domain, based on the existing literature. Then, a configurator has been implemented to support the feature selection phase. Finally, a generator is able to ingest such configurations to generate on-the-shelf blockchain products. The generalizability of the contribution is validated by reproducing on-chain traceability applications proposed in the literature by using the platform. This work provides the first evidence that the implementation of blockchain applications using software product lines enhances the quality of produced applications and reduces the time to market